﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

#endregion

using System;

namespace Sebastof.Services.Interfaces {
	/// <summary>
	/// Is responsible for 
	/// - offering the possibility that objects can deposits all their applied changes here
	/// </summary>
	public interface IAppliedChangesOnObjectsCollectorService {
		void DepositeValueChangedEntry(string valueKey, object value, object forObject);

		void DepositeValueChangedByObjectIdEntry(string valueKey, object value, string forObjectKey, Type objectKeyType,
												  object version);

		void DepositeObjectAddedEntry(Object addedValue, object forObject, string valueKey);
		void DepositeObjectAddedAtEntry(int index, object addedValue, object forObject, string valueKey);
		void DepositeObjectRemovedEntry(object removedValue, object forObject, string valueKey);
		void DepositeObjectRemovedAtEntry(int index, object forObject, string valueKey);
		void DepositeObjectWasCommited(object obj);
	}
}